package com.mybatis.jpa.exception;

import java.util.Collection;

import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

public class JpaException {
	
	private JpaException(){}

	/**
	 * 对象为空的时候抛异常
	 * @param obj 被检查的对象
	 * @param messageFormat 消息格式
	 * @param arguments 自定义异常信息
	 */
	public static void NullRuntimeException(Object obj, String messageFormat, Object...arguments) {
		if (obj == null) {
			throw new IllegalStateException(String.format(messageFormat, arguments));
		}
	}
	
	/**
	 * 集合为空或空集合抛异常
	 * @param collection 被检查集合对象
	 * @param messageFormat 消息格式
	 * @param arguments 自定义异常信息
	 */
	public static <T> void CollectionIsBlankRuntimeException(Collection<T> collection, String messageFormat, Object...arguments) {
		if (collection == null || collection.isEmpty()) {
			 throw new IllegalStateException(String.format(messageFormat, arguments));
		}
	}

	/**
	 * 数组为空或空集合抛异常
	 * @param objArray 被检查数组对象
	 * @param messageFormat 自定义异常信息
	 * @param arguments
	 */
	public static void ArrayIsBlankRuntimeException(Object[] objArray, String messageFormat, Object...arguments) {
		if (ArrayUtils.isEmpty(objArray)) {
			 throw new IllegalStateException(String.format(messageFormat, arguments));
		}
	}
}
